import request from '@/utils/request'


/**
 * 用户登录
 * @param {*} data  - 包含用户名和密码的对象
 * @returns  {Promise} - 返回一个Promise对象
 */
export function loginAPI(data) {
  return request({
    url: '/user/login',
    method: 'post',
    data
  })
}

/**
 * 邮箱验证码注册
 * @param {*} data - 包含邮箱、验证码和密码的对象
 * @returns {Promise} - 返回一个Promise对象
 */
export function emailRegisterAPI(data) {
  return request({
    url: '/user/email/register',
    method: 'post',
    data
  })
}

/**
 * 手机验证码注册
 * @param {*} data - 包含手机、验证码和密码的对象
 * @returns {Promise} - 返回一个Promise对象
 */
export function phoneRegisterAPI(data) {
  return request({
    url: '/user/phone/register',
    method: 'post',
    data
  })
}

/**
 * 获取当前登录用户
 * @returns {Promise} - 返回一个Promise对象
 */
export function getCurrentUserAPI() {
  return request({
    url: '/user/getCurrentUser',
    method: 'get'
  })
}

/**
 * 退出登录
 * @returns {Promise} - 返回一个Promise对象
 */
export function logoutAPI() {
  return request({
    url: '/user/logout',
    method: 'post'
  })
}

/**
 * 获取当前用户信息
 */
export function getUserInfoAPI(id) {
  return request({
    url: '/user/get',
    method: 'get',
    params: { id }
  })
}

/**
 * 获取用户列表
 * @param {Object} data - 查询请求体
 * @returns {Promise} - 返回一个Promise对象
 */
export function getUserListAPI(data) {
  return request({
    url: '/user/list',
    method: 'get',
    params: data
  })
}

/**
 * 添加用户
 * @param {Object} data - 添加请求体
 * @returns {Promise} - 返回一个Promise对象
 */
export function addUserAPI(data) {
  return request({
    url: '/user/add',
    method: 'post',
    data
  })
}

/**
 * 删除用户
 * @param {Object} data - 删除请求体
 * @returns {Promise} - 返回一个Promise对象
 */
export function deleteUserAPI(data) {
  return request({
    url: '/user/delete',
    method: 'delete',
    data
  })
}

/**
 * 修改用户
 * @param {Object} data - 修改请求体
 * @returns {Promise} - 返回一个Promise对象
 */
export function updateUserAPI(data) {
  return request({
    url: '/user/update',
    method: 'put',
    data
  })
}

/**
 * 更改用户头像
 */
export function updateUserAvatarAPI(file) {
  const formData = new FormData();
  // 添加文件
  formData.append('file', file);
  return request({
    url: '/user/changeAvatar',
    method: 'put',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

/**
 * 修改个人信心
 */
export function updateCurrentUserAPI(data) {
  return request({
    url: '/user/updateCurrentUser',
    method: 'put',
    data
  })
}
